---
title: Journaux de transparence des certificats (TC)
slug: ct-logs
lastmod: 2023-09-25
show_lastmod: 1
---


<p>
  <a href="https://www.certificate-transparency.org/what-is-ct"
    >Certificate Transparency (CT)</a
>
  est un système pour enregistrer et surveiller la délivrance des certificats TLS. CT
  améliore considérablement la capacité de chacun à surveiller et à étudier l'émission de certificats,
  et ces capacités ont conduit à de nombreuses améliorations de l'écosystème CA et de la sécurité du Web. En conséquence, le CT devient rapidement une infrastructure critique.
</p>

<p>
  Let's Encrypt soumet tous les certificats que nous délivrons aux journaux TC. Nous exploitons également
  deux journaux annuels de CT nommés
  <a href="https://letsencrypt.org/2019/05/15/introducing-oak-ct-log.html"
    >Oak</a
>
  et Sapling. Toutes les autorités de certification publiquement reconnues sont les bienvenues pour
contribuer à nos journaux. De nombreux certificats racine d'autorité de certification ont déjà été inclus dans nos journaux CT. Si vous exploitez une autorité de certification et que votre émetteur n'est pas dans notre liste d'émetteurs acceptés, veuillez déposer un message <a href="https://github.com/letsencrypt/ct-log-metadata">ici</a>.
</p>

<p>
  Inscrivez-vous pour recevoir des notifications dans le <a href="https://community.letsencrypt.org/t/about-the-ct-announcements-category">catégorie des annonces CT</a> de notre forum communautaire pour voir les annonces majeures concernant nos journaux CT.
</p>

<h2>Financement</h2>

<p>
  Si votre organisation souhaite nous aider à poursuivre ce travail,
  nous vous invitons à envisager un
  <a href="https://www.abetterinternet.org/sponsor/">parrainage ou un don</a>.
</p>

<h2>Architecture</h2>

<p>
  Consultez notre blog pour voir 
  <a href="https://letsencrypt.org/2019/11/20/how-le-runs-ct-logs.html"
    >comment Let's Encrypt exécute les journaux CT </a
>!
</p>

<h2>Surveillance du journal</h2>

<p>
  Let's Encrypt a créé un outil de surveillance des journaux CT open-source appelé <a href="https://github.com/letsencrypt/ct-woodpecker">CT Woodpecker</a>. Nous
  utilisons cet outil pour contrôler la stabilité et la conformité de nos propres journaux, et nous
  espérons que d'autres le trouveront également utile.
</p>

<h2>Journaux TC</h2>
<p>
Des informations sur les différents états du cycle de vie d'un journal de CT peuvent être trouvées <a href="https://googlechrome.github.io/CertificateTransparency/log_states.html">ici</a>.
</p>

{{< ct_logs data="production" >}}
<li>
  Oak est intégré dans les programmes CT d'
  <a href="https://support.apple.com/en-us/HT209255">Apple</a> et de 
  <a href="https://github.com/chromium/ct-policy/blob/master/ct_policy.md"
    >Google</a
>.
</li>
<li>Notre environnement de production de l'API ACME soumet les certificats ici.</li>
{{< /ct_logs >}} {{< ct_logs data="testing" >}}
<li>
  Les SCT de ces journaux <b>NE DOIVENT PAS</b> être incorporés dans des certificats de confiance publics.
</li>
<li>
  Les environnements Let's Encrypt de production et de 
  <a href="/docs/staging-environment">développement</a> de l'API ACME soumettent tous deux des certificats à Sapling, mais l'environnement de production n'utilise pas les SCTs résultants.
</li>
<li>
  Nous testons ici les nouvelles versions de Trillian et de certificate-transparency-go 
  <a href="http://github.com/google/trillian">Trillian</a> et de 
  <a href="https://github.com/google/certificate-transparency-go"
    >certificate-transparency-go</a
>
  avant de les déployer en production.
</li>
<li>
  La liste des racines acceptées par Sapling comprend toutes les racines acceptées par Oak, plus des racines de test supplémentaires.
</li>
<li>
  Sapling peut être utilisé par d'autres autorités de certification à des fins de test.
</li>
{{< /ct_logs >}} {{< ct_logs data="Sunlight" >}}
<li>
  Let's Encrypt teste des journaux d'exécution basés sur <a href="https://sunlight.dev">Sunlight</a>.
</li>
<li>
  Les SCT de ces journaux <b>NE DOIVENT PAS</b> être incorporés dans des certificats de confiance publics.
</li>
<li>Twig restera un journal de test, et accepte les mêmes AC que Sapling.
</li>
<li>Willow et Sycamore acceptent la même chose que Oak et sont destinés à devenir des logs de production.
</li>
{{< /ct_logs >}}
<br />
<h2>Opérations de journalisation</h2>
<p>
  Pour énumérer les racines incluses pour un journal CT particulier, vous pouvez exécuter la commande suivante dans le terminal de votre choix :
</p>
<pre>
$ for i in $(curl -s https://oak.ct.letsencrypt.org/2020/ct/v1/get-roots | jq -r '.certificates[]'); do
    echo '------'; base64 -d &lt;&lt;&lt; "${i}" | openssl x509 -inform der -noout -issuer -serial
done
</pre>

<p>
  La soumission des certificats à un journal CT est généralement gérée par les autorités de certification. Si vous souhaitez expérimenter avec ceci, commencez par récupérer un certificat arbitraire encodé en PEM à partir de notre site web préféré. Copiez et collez le bloc suivant dans votre terminal.
</p>
<pre>
$ echo | \
openssl s_client \
    -connect "letsencrypt.org":443 \
    -servername "letsencrypt.org" \
    -verify_hostname "letsencrypt.org" 2&gt;/dev/null | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' &gt; example.crt
</pre>

<p>
  Avant qu'un certificat ne puisse être soumis, il doit être encodé en JSON dans une structure spéciale. Vous pouvez utiliser le générateur JSON fourni par
  <a href="https://crt.sh/gen-add-chain">https://crt.sh/gen-add-chain</a> pour effectuer cette opération. L'utilitaire crt.sh renverra un paquet JSON. Téléchargez le paquet sur votre ordinateur, renommez le fichier si nécessaire et lancez la commande suivante
 pour effectuer l'opération add-chain (<a href="https://tools.ietf.org/html/rfc6962#section-4.1">RFC 6962 section 4.1</a
>) pour soumettre le certificat à un journal CT. La sortie contiendra une signature qui est en fait un <a href="https://letsencrypt.org/2018/04/04/sct-encoding.html">SCT</a>. Nous reviendrons sur la signature dans un moment.
</p>
<pre>
$ curl \
    -X POST \
   --data @example-json-bundle.json \
    -H "Content-Type: application/json" \
    -H "User-Agent: lets-encrypt-ct-log-example-1.0" \
   https://oak.ct.letsencrypt.org/2020/ct/v1/add-chain
{"sct_version":0,"id":"5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=","timestamp":1576689972016,"extensions":"","signature":"BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E"}
</pre>

<p>
  Pour confirmer que le journal CT a été signé par le shard Oak 2020, nous utilisons le champ id de la commande ci-dessus et l'exécutons avec la commande suivante. Le résultat de cette opération sera l'ID du journal du CT.
</p>
<pre>
$ base64 -d &lt;&lt;&lt; "5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=" | xxd -p -c 64 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
E7:12:F2:B0:37:7E:1A:62:FB:8E:C9:0C:61:84:F1:EA:7B:37:CB:56:1D:11:26:5B:F3:E0:F3:4B:F2:41:54:6E
</pre>

<p>
  En utilisant le champ de signature, nous pouvons vérifier que le certificat a été soumis à un journal. En utilisant notre <a href="https://letsencrypt.org/2018/04/04/sct-encoding.html"
    >guide d'approfondissement SCT</a
>, vous pouvez décoder plus en profondeur cette valeur.
</p>
<pre>
$ base64 -d &lt;&lt;&lt; "BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E" | xxd -p -c 16 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
04:03:00:47:30:45:02:21:00:E0:E9:AE:4D:C7:ED:F4
9A:B7:5C:BB:5C:75:9C:FD:5E:29:D7:0A:F6:04:63:54
5D:49:02:02:5D:AC:8C:27:ED:02:20:7B:AE:8E:42:81
2E:64:33:E4:29:7F:54:6E:82:DF:9E:1C:3F:D8:31:5B
47:5F:80:C5:81:F8:0D:B2:1E:2F:84
</pre>
